// Copyright 2023 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package output

import "testing"

func TestAlterPolicy(t *testing.T) {
	tests := []QueryParses{
		Unimplemented("ALTER POLICY name ON table_name RENAME TO new_name"),
		Unimplemented("ALTER POLICY name ON table_name"),
		Unimplemented("ALTER POLICY name ON table_name TO role_name"),
		Unimplemented("ALTER POLICY name ON table_name TO PUBLIC"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_ROLE"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_USER"),
		Unimplemented("ALTER POLICY name ON table_name TO SESSION_USER"),
		Unimplemented("ALTER POLICY name ON table_name TO role_name , role_name"),
		Unimplemented("ALTER POLICY name ON table_name TO PUBLIC , role_name"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_ROLE , role_name"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_USER , role_name"),
		Unimplemented("ALTER POLICY name ON table_name TO SESSION_USER , role_name"),
		Unimplemented("ALTER POLICY name ON table_name TO role_name , PUBLIC"),
		Unimplemented("ALTER POLICY name ON table_name TO PUBLIC , PUBLIC"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_ROLE , PUBLIC"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_USER , PUBLIC"),
		Unimplemented("ALTER POLICY name ON table_name TO SESSION_USER , PUBLIC"),
		Unimplemented("ALTER POLICY name ON table_name TO role_name , CURRENT_ROLE"),
		Unimplemented("ALTER POLICY name ON table_name TO PUBLIC , CURRENT_ROLE"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_ROLE , CURRENT_ROLE"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_USER , CURRENT_ROLE"),
		Unimplemented("ALTER POLICY name ON table_name TO SESSION_USER , CURRENT_ROLE"),
		Unimplemented("ALTER POLICY name ON table_name TO role_name , CURRENT_USER"),
		Unimplemented("ALTER POLICY name ON table_name TO PUBLIC , CURRENT_USER"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_ROLE , CURRENT_USER"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_USER , CURRENT_USER"),
		Unimplemented("ALTER POLICY name ON table_name TO SESSION_USER , CURRENT_USER"),
		Unimplemented("ALTER POLICY name ON table_name TO role_name , SESSION_USER"),
		Unimplemented("ALTER POLICY name ON table_name TO PUBLIC , SESSION_USER"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_ROLE , SESSION_USER"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_USER , SESSION_USER"),
		Unimplemented("ALTER POLICY name ON table_name TO SESSION_USER , SESSION_USER"),
		Unimplemented("ALTER POLICY name ON table_name USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO role_name USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO PUBLIC USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_ROLE USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_USER USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO SESSION_USER USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO role_name , role_name USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO PUBLIC , role_name USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_ROLE , role_name USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_USER , role_name USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO SESSION_USER , role_name USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO role_name , PUBLIC USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO PUBLIC , PUBLIC USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_ROLE , PUBLIC USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_USER , PUBLIC USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO SESSION_USER , PUBLIC USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO role_name , CURRENT_ROLE USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO PUBLIC , CURRENT_ROLE USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_ROLE , CURRENT_ROLE USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_USER , CURRENT_ROLE USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO SESSION_USER , CURRENT_ROLE USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO role_name , CURRENT_USER USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO PUBLIC , CURRENT_USER USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_ROLE , CURRENT_USER USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_USER , CURRENT_USER USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO SESSION_USER , CURRENT_USER USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO role_name , SESSION_USER USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO PUBLIC , SESSION_USER USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_ROLE , SESSION_USER USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_USER , SESSION_USER USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO SESSION_USER , SESSION_USER USING ( using_expression )"),
		Unimplemented("ALTER POLICY name ON table_name WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO role_name WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO PUBLIC WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_ROLE WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_USER WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO SESSION_USER WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO role_name , role_name WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO PUBLIC , role_name WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_ROLE , role_name WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_USER , role_name WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO SESSION_USER , role_name WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO role_name , PUBLIC WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO PUBLIC , PUBLIC WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_ROLE , PUBLIC WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_USER , PUBLIC WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO SESSION_USER , PUBLIC WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO role_name , CURRENT_ROLE WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO PUBLIC , CURRENT_ROLE WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_ROLE , CURRENT_ROLE WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_USER , CURRENT_ROLE WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO SESSION_USER , CURRENT_ROLE WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO role_name , CURRENT_USER WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO PUBLIC , CURRENT_USER WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_ROLE , CURRENT_USER WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_USER , CURRENT_USER WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO SESSION_USER , CURRENT_USER WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO role_name , SESSION_USER WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO PUBLIC , SESSION_USER WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_ROLE , SESSION_USER WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_USER , SESSION_USER WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO SESSION_USER , SESSION_USER WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO role_name USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO PUBLIC USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_ROLE USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_USER USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO SESSION_USER USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO role_name , role_name USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO PUBLIC , role_name USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_ROLE , role_name USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_USER , role_name USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO SESSION_USER , role_name USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO role_name , PUBLIC USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO PUBLIC , PUBLIC USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_ROLE , PUBLIC USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_USER , PUBLIC USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO SESSION_USER , PUBLIC USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO role_name , CURRENT_ROLE USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO PUBLIC , CURRENT_ROLE USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_ROLE , CURRENT_ROLE USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_USER , CURRENT_ROLE USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO SESSION_USER , CURRENT_ROLE USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO role_name , CURRENT_USER USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO PUBLIC , CURRENT_USER USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_ROLE , CURRENT_USER USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_USER , CURRENT_USER USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO SESSION_USER , CURRENT_USER USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO role_name , SESSION_USER USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO PUBLIC , SESSION_USER USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_ROLE , SESSION_USER USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO CURRENT_USER , SESSION_USER USING ( using_expression ) WITH CHECK ( check_expression )"),
		Unimplemented("ALTER POLICY name ON table_name TO SESSION_USER , SESSION_USER USING ( using_expression ) WITH CHECK ( check_expression )"),
	}
	RunTests(t, tests)
}
